	
	/*
	 * easyui tab 扩展
	 */
	jQuery.extend($.fn.tabs.methods, {
		addIframeTab: function(jq,options){
			if(options.closable==undefined){
				options.closable==true;
			}
			
			if(options.url==undefined){
				return;
			}
			if(options.url==""){
				return;
			}
			
			//如果tab已经存在,则选中并刷新该tab
			if (jq.tabs('exists', options.title)){
				jq.tabs('select', options.title);
				jq.tabs('refreshTab',options);
			}else{
				if(options.iconCls==undefined){
					jq.tabs('add',{
						title:options.title,
						content:'<iframe style="width:100%;height:100%" frameborder="no" src="'+homeModuleUrl+options.url+'" name="iframeCenterName"></iframe>',
						closable:options.closable
					});
				}else{
					jq.tabs('add',{
						title:options.title,
						content:'<iframe style="width:100%;height:100%" frameborder="no" src="'+homeModuleUrl+options.url+'" name="iframeCenterName"></iframe>',
						closable:options.closable,
						iconCls:options.iconCls
					});
				}
				
			}
		},
		/**     
		* 刷新tab 
		* @options  
		* example: {tabTitle:'tabTitle',url:'refreshUrl'} 
		* 如果tabTitle为空，则默认刷新当前选中的tab 
		* 如果url为空，则默认以原来的url进行reload 
		*/
		refreshTab:function(jq,options){
			//取到要刷新的tab
			var refreshTab = options.tabTitle?jq.tabs('getTab',options.tabTitle):jq.tabs('getSelected');  
			if(refreshTab && refreshTab.find('iframe').length>0){
				var ifram = refreshTab.find('iframe')[0];  
				var refreshUrl = options.url?options.url:ifram.src;
				//ifram.src = refreshUrl; 
				ifram.contentWindow.location.href=homeModuleUrl+refreshUrl; 
			}
		},
		/**     
		* 刷新tab 
		* @options  
		* example: {tabTitle:'tabTitle',url:'refreshUrl'} 
		* 如果tabTitle为空，则默认刷新当前选中的tab 
		* 如果url为空，则默认以原来的url进行reload 
		*/
		refreshTabByTitle:function(jq,tabTitle){
			//取到要刷新的tab
			var refreshTab = tabTitle?jq.tabs('getTab',tabTitle):jq.tabs('getSelected');  
			if(refreshTab && refreshTab.find('iframe').length>0){
				var ifram = refreshTab.find('iframe')[0];  
				var refreshUrl = options.url?options.url:ifram.src;
				//ifram.src = refreshUrl; 
				ifram.contentWindow.location.href=homeModuleUrl+refreshUrl; 
			}
		}
	});
	
	
	
	/**
	 * 将表单数据转为json
	 * formId 要转换的form的Id
	 */
	function getFormJson(formId) {
		var formObj = $("#" + formId);
		var o = {};
		var a = formObj.serializeArray();
		$.each(a, function() {
			if (o[this.name] !== undefined) {
				if (!o[this.name].push) {
					o[this.name] = [ o[this.name] ];
				}
				o[this.name].push(this.value || '');
			} else {
				o[this.name] = this.value || '';
			}
		});
		return o;
	}
	
	
	/**
	 * grid的条件查找方法
	 * 
	 * @param formId
	 */
	function gridSearch(gridId,formId) {
		$('#'+gridId).datagrid({
			queryParams : getFormJson(formId)
		});
	}


	/**
	 * 打开添加窗口 winId 要打开窗口的Id
	 */
    function openWindow(winId){
        jQuery('#'+winId).window('open');
    }

	/**
	 * 保存 gridId 用来保存成功后刷新数据的dataGrid的Id formId 要提交form的Id winId callbackMethod 在保存成功后执行业务逻辑
	 * 要关闭的windows窗口的Id
	 */
    function saveData(gridId,searchFormId,formId,winId,callbackMethod){
    	jQuery('#'+formId).form('submit',{
			success : function(data) {
				var result = eval("("+data+")");
				if(result.success){
					clearForm(searchFormId);
					//刷新表格数据
					loadDataGrid(gridId);
					//清空form表单
					closeWindows(winId);
					jQuery.messager.alert('提示信息','保存记录成功！','info');
					if(callbackMethod!=undefined){
						callbackMethod(result);
					}
				}else{
					//closeWindows(winId); //!!失败时不应关闭窗口
					jQuery.messager.alert('提示信息','保存记录失败！','info');
				}
			},
			onSubmit:function(){
				var bool = jQuery('#'+formId).form('enableValidation').form('validate'); 
				return bool;
			}
		});
    }
    

	/**
	 * 保存 gridId 用来保存成功后刷新数据的dataGrid的Id formId 要提交form的Id winId callbackMethod 在保存成功后执行业务逻辑
	 * 要关闭的windows窗口的Id
	 */
    function saveDataWithTree(gridId,searchFormId,formId,winId,callbackMethod){
    	jQuery('#'+formId).form('submit',{
			success : function(data) {
				var result = eval("("+data+")");
				if(result.success){
					//刷新表格数据
					reLoadDataGrid(gridId);
					//清空form表单
					closeWindows(winId);
					jQuery.messager.alert('提示信息','保存记录成功！','info');
					if(callbackMethod!=undefined){
						callbackMethod();
					}
				}else{
					closeWindows(winId);
					jQuery.messager.alert('提示信息','保存记录失败！','info');
				}
			},
	    	onSubmit:function(){
				var bool = jQuery('#'+formId).form('enableValidation').form('validate'); 
				return bool;
			}
		});
    }
    
    
	/**
	 * gridId 要删除记录的grid的Id
	 * method 删除的具体方法
     * 删除datagrid数据
     */
    function deleteGridData(gridId,method){
		var deleteIds = "";
		var selectDatas = jQuery('#'+gridId).datagrid("getSelections");
		if(selectDatas){
			if(selectDatas.length>0){
    			for(var i=0;i<selectDatas.length;i++){
					var selectData = selectDatas[i];
					deleteIds = deleteIds + selectData.id+",";
    			}
				jQuery.messager.confirm(
					'提示信息', 
					'请问您确定要删除这几条记录么?', 
					function(r){
        				if (r){
        					method(deleteIds,gridId);
        				}
					}
				);
			}else{
				jQuery.messager.alert('提示信息','请选中您要删除的记录！','info');
			}
		}else{
			jQuery.messager.alert('提示信息','请选中您要删除的记录！','info');
		}
    }
    
    
	
	/**
	 * 更加windowId关闭该窗体
	 */
	function closeWindows(winId){
		jQuery('#'+winId).window('close');
	}
	
	/**
	 * 根据formId清楚该表单的数据
	 */
	function clearForm(formId){
		jQuery('#'+formId).form('clear');
		jQuery('#'+formId).form('disableValidation');
	}
	
	
	function loadDataGrid(gridId){
		jQuery('#'+gridId).datagrid("load",{});
	}
	
	function reLoadDataGrid(gridId){
		jQuery('#'+gridId).datagrid("load");
	}
	
    var ie = (function() {   
        var undef, v = 3, div = document.createElement('div'), all = div   
                .getElementsByTagName('i');   
        while (div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', all[0]);   
        return v > 4 ? v : undef;   
    }());   
    
    /**
     * 针对panel window dialog三个组件调整大小时会超出父级元素的修正  
     * 如果父级元素的overflow属性为hidden，则修复上下左右个方向  
     * 如果父级元素的overflow属性为非hidden，则只修复上左两个方向  
     * @param width  
     * @param height  
     * @returns  
     */  
    var easyuiPanelOnResize = function(width, height) {   
        if (!$.data(this, 'window') && !$.data(this, 'dialog'))   
            return;   
      
        if (ie === 8) {   
            var data = $.data(this, "window") || $.data(this, "dialog");   
            if (data.pmask) {   
                var masks = data.window.nextAll('.window-proxy-mask');   
                if (masks.length > 1) {   
                    $(masks[1]).remove();   
                    masks[1] = null;   
                }   
            }   
        }   
        if ($(this).panel('options').maximized == true) {   
            $(this).panel('options').fit = false;   
        }   
        $(this).panel('options').reSizing = true;   
        if (!$(this).panel('options').reSizeNum) {   
            $(this).panel('options').reSizeNum = 1;   
        } else {   
            $(this).panel('options').reSizeNum++;   
        }   
        var parentObj = $(this).panel('panel').parent();   
        var left = $(this).panel('panel').position().left;   
        var top = $(this).panel('panel').position().top;   
      
        if ($(this).panel('panel').offset().left < 0) {   
            $(this).panel('move', {   
                        left : 0   
                    });   
        }   
        if ($(this).panel('panel').offset().top < 0) {   
            $(this).panel('move', {   
                        top : 0   
                    });   
        }   
      
        if (left < 0) {   
            $(this).panel('move', {   
                        left : 0   
                    }).panel('resize', {   
                        width : width + left   
                    });   
        }   
        if (top < 0) {   
            $(this).panel('move', {   
                        top : 0   
                    }).panel('resize', {   
                        height : height + top   
                    });   
        }   
        if (parentObj.css("overflow") == "hidden") {   
            var inline = $.data(this, "window").options.inline;   
            if (inline == false) {   
                parentObj = $(window);   
            }   
            
      
            if ((width + left > parentObj.width())   
                    && $(this).panel('options').reSizeNum > 1) {   
                $(this).panel('resize', {   
                            width : parentObj.width() - left   
                        });   
            }   
      
            if ((height + top > parentObj.height())   
                    && $(this).panel('options').reSizeNum > 1) {   
                $(this).panel('resize', {   
                            height : parentObj.height() - top   
                        });   
            }   
        }   
        $(this).panel('options').reSizing = false;
        var spans = $(this).find("span.textbox");
        if(spans!=undefined&&spans.length>0){
        	 for(var i=0;i < spans.length;i++){
        		 
        			 $(spans[i]).width(100);
             }
        }
    };
    
    /**
     * add by cgh  
     * 针对panel window dialog三个组件拖动时会超出父级元素的修正  
     * 如果父级元素的overflow属性为hidden，则修复上下左右个方向  
     * 如果父级元素的overflow属性为非hidden，则只修复上左两个方向  
     * @param left  
     * @param top  
     * @returns  
     */  
    var easyuiPanelOnMove = function(left, top) {   
        if ($(this).panel('options').reSizing)   
            return;   
        var parentObj = $(this).panel('panel').parent();   
        var width = $(this).panel('options').width;   
        var height = $(this).panel('options').height;   
//        var right = left + width;   
//        var buttom = top + height;   
//        var parentWidth = parentObj.width();   
//        var parentHeight = parentObj.height();   
      
        if (left < 0) {   
            $(this).panel('move', {   
                        left : 0   
                    });   
        }   
        if (top < 0) {   
            $(this).panel('move', {   
                 top : 0   
            });   
        }
      
        if (parentObj.css("overflow") == "hidden") {   
            var inline = $.data(this, "window").options.inline;   
            if (inline == false) {   
                parentObj = $(window);   
            }   
            if (left > parentObj.width() - width) {   
                $(this).panel('move', {   
                            "left" : parentObj.width() - width   
                        });   
            }   
            if (top > parentObj.height() - height) {   
                $(this).panel('move', {   
                            "top" : parentObj.height() - height   
                        });   
            }   
        }   
    };   
    
    
    /*
	 *查找工具条上的按钮
	 */
	function selectToolbarBtn(toolbarId,btnCls){
		return jQuery('#'+toolbarId+' .'+btnCls);
	}
    
    
    $.fn.window.defaults.onResize = easyuiPanelOnResize;   
    $.fn.dialog.defaults.onResize = easyuiPanelOnResize;   
    $.fn.window.defaults.onMove = easyuiPanelOnMove;   
    $.fn.dialog.defaults.onMove = easyuiPanelOnMove;  

	